const { ccclass, property } = cc._decorator;

// import o from "./AudioManager"
// import i from "./PlayerDataSys"
// import r from "./EventMgr"
// import n from "./NativeEventType"
// import l from "./frameworkManager"
// import c from "./AdManager"
// import u from "./CallAndroid"
// import p from "./CalliOS"
// import d from "./ClientData"
// import h from "./BaseSystem"
// import f from "./EngineUtil"

@ccclass
class SdkHelper {
    public EnableSDK = true;
    public clientData = null;
    public user_id = "";
    public sm_event_type = "activate";
    public bd_did = cc.sys.localStorage.getItem("dev_token") || "";

    constructor() {
        // r.listen(n.APP_START, this.onAppStart, this);
        // r.listen(n.APP_STOP, this.onAppStop, this);
        // r.listen(n.APP_RESTART, this.onAppRestart, this);
        // r.listen(n.APP_PAUSE, this.onAppPause, this);
        // r.listen(n.APP_RESUME, this.onAppResume, this);
        // r.listen(n.APP_DESTROY, this.onAppDestory, this);
        // r.listen(n.ON_GET_SM_ID, this.onGetSmId, this);
    }

    static _instance;
    static _getInstance(): SdkHelper {
        SdkHelper._instance || (SdkHelper._instance = new SdkHelper());
        return SdkHelper._instance;
    };
    public onGetSmId(e) {
        // h.shumengReport({
        //     did: e,
        //     event_type: this.sm_event_type
        // });
    };
    public getClientInfo() {
        // if (!this.clientData) if (cc.sys.isNative && this.EnableSDK) cc.sys.os === cc.sys.OS_ANDROID ? this.clientData = JSON.parse(u.getInstance().getClientInfo()) : cc.sys.os === cc.sys.OS_IOS && (this.clientData = JSON.parse(p.getInstance().getClientInfo())); else {
        //     var e = f.localStorageGetItem("Web_Device_Id", "");
        //     if (!e) {
        //         e = "test" + f.getRandId();
        //         f.localStorageSetItem("Web_Device_Id", e);
        //     }
        //     this.clientData = {
        //         device_id: e,
        //         aid: "aid",
        //         ii: "li",
        //         madr: "madr",
        //         wmr: "wmr",
        //         version_name: "1.1.5.8",
        //         channel_name: "web"
        //     };
        // }
        return {};//this.clientData;
    };
    public initOtherSDK(e) {
        // if (cc.sys.isNative) {
        //     setTimeout( () =>{
        //         r.trigger(n.OAID_FINISH);
        //     }, 1200);
        //     setTimeout( () =>{
        //         r.trigger(n.AUTHOR_FINISH);
        //         console.log("小狗爱旅游", "--****权限自动跳过****");
        //     }, 1200);
        //     if (cc.sys.os === cc.sys.OS_ANDROID) {
        //         l.log("initOtherSDK");
        //         u.getInstance().initOtherSDK();
        //         e && r.trigger(n.SDKINIT_FINISH);
        //     } else r.trigger(n.SDKINIT_FINISH);
        // } else {
        //     r.trigger(n.OAID_FINISH);
        //     r.trigger(n.AUTHOR_FINISH);
        // }
    };
    public setUserInfo(e) {
        // this.user_id = e.user_id;
        // l.log("设置原生端用户信息==", e);
        // this.EnableSDK && (cc.sys.os === cc.sys.OS_ANDROID ? u.getInstance().setUserInfo(JSON.stringify(e)) : cc.sys.os === cc.sys.OS_IOS && p.getInstance().setUserInfo(JSON.stringify(e)));
    };
    public callWxLogin() {
        // cc.sys.isNative ? cc.sys.os == cc.sys.OS_ANDROID ? u.getInstance().wxLogin() : cc.sys.os == cc.sys.OS_IOS && p.getInstance().wxLogin() : console.error("非原生端,微信登录失败");
    };
    public getUrlSplicingString() {
        return ""//this.EnableSDK && (cc.sys.os, cc.sys.OS_ANDROID), d.url_common_str;
    };
    public showToast(e) {
        // if (e) if (this.EnableSDK && cc.sys.isNative) {
        //     if (cc.sys.os === cc.sys.OS_ANDROID) u.getInstance().showToast(e); else if (cc.sys.os == cc.sys.OS_IOS) {
        //         console.log("ios吐司~~~~~," + e);
        //         // p.getInstance().showToast(e);
        //     }
        // } else console.log("非原生端,手动吐司~~~~~," + e);
    };
    public showForceToast(e) {
        // if (cc.sys.isNative && e) {
        //     cc.sys.os == cc.sys.OS_ANDROID && u.getInstance().showForceToast(e);
        //     // cc.sys.os == cc.sys.OS_IOS && p.getInstance().showForceToast(e);
        // }
    };
    public showForceDialog(e, t) {
        // t && (this.EnableSDK && cc.sys.isNative ? cc.sys.os === cc.sys.OS_ANDROID && u.getInstance().showForceDialog(e, t) : console.log("非原生端,手动吐司~~~~~," + t));
    };
    public finishApp() {
        console.log("退出app");
        // this.EnableSDK && cc.sys.os === cc.sys.OS_ANDROID ? u.getInstance().finishApp() : cc.sys.os == cc.sys.OS_IOS && p.getInstance().finishActivity();
    };
    public getScreenHeight() {
        // return cc.sys.isNative ? this.EnableSDK && cc.sys.os === cc.sys.OS_ANDROID ? u.getInstance().getScreenHeight() : 0 ? 1 : void 0 : cc.winSize.height;
    };
    public setVibrator(e?) {
        // void 0 === e && (e = 300);
        // o.getInstance().getVibratorState() && (this.EnableSDK && cc.sys.os === cc.sys.OS_ANDROID ? u.getInstance().setVibrator(e) : cc.sys.os == cc.sys.OS_IOS && 1);
    };
    public setNotchHeight() {
        // this.EnableSDK && (cc.sys.os, cc.sys.OS_ANDROID);
    };
    public setXhrCookie(e) {
        // this.EnableSDK && cc.sys.os === cc.sys.OS_ANDROID ? e.setRequestHeader("Cookie", document.cookie) : cc.sys.os === cc.sys.OS_IOS && e.setRequestHeader("Cookie", document.cookie);
    };
    public feedback(e, t, a) {
        // this.EnableSDK && cc.sys.os === cc.sys.OS_ANDROID ? u.getInstance().openKefu(e, t, a) : cc.sys.os == cc.sys.OS_IOS && 1;
    };
    public openAgreementPage() {
        // cc.sys.isNative && cc.sys.os == cc.sys.OS_ANDROID && u.getInstance().setEnterAgreementTime();
    };
    public getFirstLaunchTime() {
        // return cc.sys.isNative && cc.sys.os == cc.sys.OS_ANDROID ? u.getInstance().getFirstLaunchTime() : 0;
    };
    public getEnterAgreementTime() {
        return cc.sys.isNative && cc.sys.os == cc.sys.OS_ANDROID ? u.getInstance().getEnterAgreementTime() : 0;
    };
    public showNotification(e) {
        // cc.sys.os === cc.sys.OS_ANDROID && u.getInstance().showNotification(e);
    };
    public reportData(e, t?, a?) {
        void 0 === a && (a = false);
        // if (f.getLocalData("user_agreement")) {
        //     t || (t = {});
        //     t.user_id = this.user_id || i.user_id;
        //     t.device_id = d.device_id || "";
        //     t.game_version = s.getInstance().getVersion();
        //     t.game_base_version = s.getInstance().getBaseVersion();
        //     t.game_app_version = d.version_name || "";
        //     if (cc.sys.isNative && this.EnableSDK) cc.sys.os === cc.sys.OS_ANDROID ? u.getInstance().reportData(e, t, a) : cc.sys.os === cc.sys.OS_IOS && p.getInstance().reportData(e, t, a); else {
        //         var o = "数据上报";
        //         a && (o = "core 数据上报");
        //         console.log(o, "\b\b事件名称 " + e, t);
        //     }
        // }
    };
    public getNgister(e, t, a) {
        // return this.EnableSDK && cc.sys.os === cc.sys.OS_ANDROID ? u.getInstance().getNgister(e, t.toString(), a) : "";
    };
    public isNetworkAcailable() {
        // return cc.sys.isNative ? cc.sys.os === cc.sys.OS_ANDROID ? u.getInstance().isNetworkAcailable() : void 0 : 1;
    };
    public isRootInVirtualApk() {
        //return cc.sys.os == cc.sys.OS_ANDROID && (u.getInstance().isRoot() || u.getInstance().isRunningInVirtualApk() || u.getInstance().isEmulator());
    };
    public getAesEncrypData(e) {
        // if (cc.sys.isNative) {
        //     if (this.EnableSDK && cc.sys.os === cc.sys.OS_ANDROID) return u.getInstance().getAesEncrypData(e);
        // } else l.log("非原生端,无法加密", e);
    };
    public getAesDncrypData(e) {
        // if (cc.sys.isNative) {
        //     if (this.EnableSDK && cc.sys.os === cc.sys.OS_ANDROID) try {
        //         return JSON.parse(u.getInstance().getAesDncrypData(e));
        //     } catch (t) {
        //         this.reportData("dncryp_err", {
        //             data: u.getInstance().getAesDncrypData(e)
        //         });
        //     }
        // } else l.log("非原生端,无法解密", e);
    };
    public getChannelName() {
        // return cc.sys.os != cc.sys.OS_ANDROID ? "" : u.getInstance().getChannelName();
    };
    public getVersionName() {
        // return cc.sys.os != cc.sys.OS_ANDROID ? "" : u.getInstance().getVersionName();
    };
    public getVersionCode() {
        // return cc.sys.os != cc.sys.OS_ANDROID ? "" : u.getInstance().getVersionCode();
    };
    public getNetWorkStatus() {
        // return cc.sys.os == cc.sys.OS_IOS ? 1 : 1;
    };
    public ysdkLogin() {
        // cc.sys.os === cc.sys.OS_ANDROID && u.getInstance().ysdkLogin();
    };
    public onAppStart() {
        this.reportData("app_start");
    };
    public onAppRestart() {
        this.reportData("app_restart");
    };
    public onAppPause() {
        this.reportData("app_pause");
        // c.getInstance().checkSpecialResume(false);
    };
    public onAppResume() {
        this.reportData("app_resume");
        // c.getInstance().checkSpecialResume(true);
    };
    public onAppStop() {
        // this.reportData("app_stop");
    };
    public onAppDestory() {
        // this.reportData("app_destory");
    };
    public getBD_did() {
        // if (cc.sys.isNative && cc.sys.os === cc.sys.OS_ANDROID) {
        //     // console.log("ClientData.version_name: ", d.version_name);
        //     return u.getInstance().getHSToken() || "";
        // }
    };
    public initBD(e) {
        // if (e && "null" != e || !cc.sys.isNative) {
        //     this.bd_did = e;
        //     cc.sys.localStorage.setItem("dev_token", e);
        // }
    };
    public getActivityNumByDate(e) {
        // return cc.sys.isNative ? cc.sys.os === cc.sys.OS_ANDROID ? u.getInstance().getActivityNumByDate(e) : void 0 : 0;
    };
    public requestSMId() {
        // cc.sys.isNative && (cc.sys.os === cc.sys.OS_ANDROID ? u.getInstance().requestSMId() : cc.sys.os === cc.sys.OS_IOS && 1);
    };
    public requestTDId() {
        // if (cc.sys.isNative) return cc.sys.os === cc.sys.OS_ANDROID ? u.getInstance().requestTDId() : cc.sys.os === cc.sys.OS_IOS ? 1 : void 0;
    };
    public getMiddleConfig() {
        // if (!cc.sys.isNative) {
        //     r.trigger(n.ON_GET_MIDDLE_CONFIG, "{}");
        //     return "{}";
        // }
        // if (cc.sys.os === cc.sys.OS_ANDROID) return u.getInstance().getMiddleConfig();
    };
    public getIsCheckUser() {
        // if (!cc.sys.isNative) return false;
        // console.log("CallAndroid.getInstance().isRoot()", u.getInstance().isRoot(), u.getInstance().isEmulator(), u.getInstance().isRunningInVirtualApk());
        // return cc.sys.os === cc.sys.OS_ANDROID ? !!(u.getInstance().isRoot() || u.getInstance().isEmulator() || u.getInstance().isRunningInVirtualApk()) : void 0;
    };
}

export default SdkHelper._getInstance();